/**
 * 解析字符串中的数字和将字符串强制类型转换为数字的返回结果都是数字。
 * 但解析和转换两者之间还是有明显的差别。
 * 解析允许
 * 字符串中含有非数字字符，解析按从左到右的顺序，如果遇到非数字字符就停止。
 * 而转换不允许出现非数字字符，否则会失败并返回 NaN
 */

const a = "100";
const b = "100px";

console.log(Number(b), parseInt(b))

console.log(parseInt("09"))


var c = {
    num: 21,
    toString: function () { return String(this.num * 2); }
};
/**
 * 第一个错误是向 parseInt(..)
 * 传递非字符串，这完全是在自找麻烦。此时 JavaScript 会将参数强制类型转换为它能够处理的字符串
 */
console.log(parseInt(c)); // 42”

